package tec;
import java.util.Iterator;
class Greffon extends Autobus{

    private Collecte collecte;
    Greffon(int nbPlaceAssise, int nbPlaceDebout, Collecte collecte){
	super(nbPlaceAssise, nbPlaceDebout);
	this.collecte = collecte;
    }
    
    
    
    
    public void demanderPlaceAssise(Passager p){
	if(!p.estDehors())
	    throw new IllegalStateException("Passenger Already in Bus");
	else{
	    super.demanderPlaceAssise(p);
	    if(p.estAssis())
		collecte.uneEntree();
	}
    }

    public void demanderPlaceDebout(Passager p){
	if(!p.estDehors())
	    throw new IllegalStateException("Passenger Already in Bus");
	else{
	    super.demanderPlaceDebout(p);
	    if(p.estDebout())
		collecte.uneEntree();
	}
	
    }
    

    protected void nouvelleSortie(Iterator<Passager> place, Passager p){
	super.nouvelleSortie(place, p);
	if(p.estDehors())
	    collecte.uneSortie();
	
    }
    
    public void demanderSortie(Passager p){
	super.demanderSortie(p);
	

    }
    
    
    public void allerArretSuivant() throws TecInvalidException{
	super.allerArretSuivant();
	collecte.changerArret();
    }
    
    
}